﻿using System;
using System.Collections.Generic;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Threading.Tasks;
using System.Windows;

namespace WpfApp1
{
    /// <summary>
    /// Interaction logic for App.xaml
    /// </summary>
    public partial class App : Application
    {

        /// <summary>
        /// 通过调用Show打开的窗口是一个非模态窗口，应用程序不会阻止用户与应用程序中的其他窗口进行交互。
        /// 使用ShowDialog打开一个窗口将打开一个窗口作为模态并将用户交互限制到特定的窗口。
        /// 有关更多信息，请参见对话框概述(https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/windows/dialog-boxes-overview?view=netdesktop-6.0)。
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void OpenWindow1(object sender, StartupEventArgs e)
        {
            // Create the window
            Window1 window = new Window1();
            //window.Visibility = Visibility.Visible;
            //window.ShowActivated = false;

            // Open the window
            window.Show();
        }
        private void OpenWindow2(object sender, StartupEventArgs e)
        {
            var window = new Window2();
            window.Show();
        }
        private void OpenWindow3(object sender, StartupEventArgs e)
        {
            var window = new Window3();
            window.Show();
        }

        /// <summary>
        /// Use the Startup event to open a window.
        /// 
        /// App.xaml中注明 Startup="Application_Startup"
        /// https://docs.microsoft.com/zh-cn/dotnet/desktop/wpf/windows/?view=netdesktop-6.0#startup-window
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Application_Startup(object sender, StartupEventArgs e)
        {
            //OpenWindow1(sender, e);
            //OpenWindow2(sender, e);
            OpenWindow3(sender, e);
        }

        /// <summary>
        /// 应用程序实例化的第一个窗口自动成为主窗口，并被设置为`Application.MainWindow`属性。
        /// 若要设置不同的主窗口，请将此属性更改为一个窗口。
        /// 
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void SetWindow2AsMainWindow(object sender, StartupEventArgs e)
        {
            Application.Current.MainWindow = new Window2();

            Application.Current.MainWindow.Show();

            // 如果你的应用程序从未创建过一个窗口的实例，下面的代码在功能上相当于前面的代码:
            // var appWindow = new Window2();
            // appWindow.Show();
            // 一旦窗口对象实例被创建，它就被分配给Application.MainWindow。
        }
    }
}
